#pragma once

#include <string>

namespace vkinfer
{
	struct Image
	{
		uint32_t width = 0;
		uint32_t height = 0;
		uint32_t channels = 0;
		uint32_t stride = 0;
		uint8_t* data = nullptr;

	public:
		static Image imread(const std::string& image_path);
		
		// bilinear interpolation
		uint8_t isample(uint32_t x, uint32_t y, uint32_t c) const;
		float sample(float x, float y, uint32_t c) const;
	};
}
